package runze.util.security;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author 王润泽 
 * @创建时间 2017年2月8日 上午9:19:05
 */
public class MD5Util {
	/**
	 * 使用md5的算法进行加密
	 */
	public static String md5(String plainText) {
		if (plainText == null) return null;
		byte[] secretBytes = null;
		String md5code = plainText;
		try {
			for (int i = 0; i < 2; i++) {	// 加密两遍
				secretBytes = MessageDigest.getInstance("md5").digest(
						md5code.getBytes());
				md5code = new BigInteger(1, secretBytes).toString(16);	// 16进制数字
			}
		} catch (NoSuchAlgorithmException e) {
			throw new RuntimeException("没有md5这个算法！");
		}
		// 如果生成数字未满32位，需要前面补0
		for (int i = 0; i < 32 - md5code.length(); i++) {
			md5code = "0" + md5code;
		}
		return md5code;
	}
}
